<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
    // 1.构造函数的问题
    function Star(uname, age) {
        this.uname = uname;
        this.age = age;
    }
    Star.prototype.sing = function() {
        console.log(this.uname + '会唱歌');
    }
    var ldh = new Star('刘德华', 18);
    var zxy = new Star('张学友', 19);
    ldh.sing();
    zxy.sing();
    console.log(ldh);  // 对象身上系统自己添加一个 __proto__ 指向我们构造函数的原型对象 prototype
    console.log(ldh.__proto__ === Star.prototype);
    // 方法的查找规则：首先先看 ldh 对象身上是否有 sing 方法，如果有就执行这个对象上的 sing 
    // 如果没有 sing 这个方法，因为有 __proto__ 的存在，就去构造函数原型对象 prototype 身上去查找 sing 这个方法
    </script>
</body>
</html>